
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/wait.h>
#include <strings.h>
#include <string.h>
#include <sys/stat.h>
#include <fcntl.h>

int main(int argc, char **argv)
{
	int fd;
	char buf[BUFSIZ];
	if (argc != 2) {
		printf("usage: %s fifofile\n", argv[0]);
		exit(1);
	}	
	//0.创建管道		
	if (mkfifo(argv[1], 0664) < 0) {
		perror("mkfifo");
		exit(1);
	}

	
	//1.打开有名管道 (类似文件) 
	
	if ((fd = open(argv[1], O_RDWR)) < 0) {
		perror("open");
		exit(1);
	}
	//2. 进程1往有名管道写数据
	while (1) {
		bzero(buf, BUFSIZ);
		fgets(buf, BUFSIZ, stdin);
		write(fd, buf, strlen(buf));
		if ((strncmp(buf, "quit", 4) == 0) && (strlen(buf) == 5)) break;

	}

	//4.关闭有名管道
	close(fd);
	sleep(1);
	remove(argv[1]); //删除管道

	
	return 0;

}


